# 导入Django的路由配置工具
# path用于普通路径，re_path支持正则表达式
from django.urls import path, re_path
# 从当前目录导入views模块（包含视图函数）
from . import views

# 定义应用的命名空间（用于URL反向解析时区分不同应用的同名路由）
# 例如在模板中使用 {% url 'tasks:task_detail' pk=1 %}
app_name = 'tasks'

# 定义URL模式列表
urlpatterns = [
    # Create a task
    # 创建任务的路由（匹配路径 /tasks/create/）
    # 对应视图函数views.task_create
    # name参数用于反向生成URL
    path('create/', views.task_create, name='task_create'),

    # Retrieve task list
    # 任务列表路由（匹配根路径 /tasks/）
    # 对应视图函数views.task_list
    path('', views.task_list, name='task_list'),

    # Retrieve single task object
    # 单个任务详情路由（正则表达式匹配类似 /tasks/123/）
    # r'^ 表示从字符串开始匹配
    # (?P<pk>\d+) 是命名捕获组，将匹配的数字作为pk参数传给视图
    # \d+ 匹配1个或多个数字
    # /$ 确保匹配到路径结尾
    re_path(r'^(?P<pk>\d+)/$', views.task_detail, name='task_detail'),

    # Update a task
    # 更新任务路由（匹配类似 /tasks/123/update/）
    re_path(r'^(?P<pk>\d+)/update/$', views.task_update, name='task_update'),

    # Delete a task
    # 删除任务路由（匹配类似 /tasks/123/delete/）
    re_path(r'^(?P<pk>\d+)/delete/$', views.task_delete, name='task_delete'),
]